﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Person
{
public:
	// 进⼊校园/图书馆/实验室刷⼆维码等⾝份认证

		void identity()
	{
		cout << "void identity()" << _name << endl;
	}
protected:
	string _name = "张三";  // 姓名

		// 	地址

		string _address;
	string _tel;
	int _age = 18;
};
// 电话

// 年龄

class Student : public Person
{
public:
	// 学习

		void study()
	{
		// ...
	}
protected:
	int _stuid;
};
// 学号

class Teacher : public Person
{
public:
	// 授课

		void teaching()
	{
		//...
	}
protected:
	string title;
};
class A :public Person
{
public:
};
template<class T>
class stack : public std::vector<T>
{
public:
	void push(const T& x)
	{
		// 	基类是类模板时，需要指定⼀下类域，

			// 否则编译报错: error C3861 : “push_back”:	找不到标识符
		// 因为stack<int>实例化时，也实例化vector<int>了

			// 但是模版是按需实例化，push_back等成员函数未实例化，所以找不到vector<T>::push_back(x);
		//push_back(x);
	}
	void pop()
	{
		vector<T>::pop_back();
	}
	const T& top()
	{
		return vector<T>::back();
	}
	bool empty()
	{
		return vector<T>::empty();
	}
};
 

int main()
{
	Student s;
	Teacher t;
	s.identity();
	t.identity();
	A aa;
	s.identity();
	return 0;
}